package com.zxg.androidbuslearn

import android.app.Activity
import android.content.Intent
import android.content.IntentFilter
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.widget.Button
import com.zxg.androidbuslearn.datasave.FileActivity
import com.zxg.androidbuslearn.datasave.SharedPreferencesActivity

/**
 * 作者: 赵小刚
 * 生成时间: 2018/10/20.
 * 版本: 1.0
 * 简介:
 * 修改记录:
 */
class SecondActivity: AppCompatActivity() {

    val TAG = "SecondActivity"

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_second)
        LogUtil.logE(TAG, "onCreate")
        LogUtil.logE(TAG, "task id == " + taskId)
        // 初始化button
        val jumpToMain = findViewById<Button>(R.id.button)
        // 设置按钮监听
        jumpToMain.setOnClickListener {
//            it.id

            // 显式Intent
            // 响应点击事件，启动MainActivity
//            var intent = Intent(this@SecondActivity, MainActivity::class.java)
//            startActivity(intent)

            // 隐式Intent 需要在 AndroidManifest.xml 中配置Activity的过滤规则
//            val intent = Intent()
//            intent.action = "com.zxg.main" // 设置跳转的过滤规则
//            intent.putExtra("data", "data from the second activity")
////            startActivity(intent) // 普通跳转
//            startActivityForResult(intent, 1) // 设置可返回值跳转

            // 测试Activity启动模式
//            ThirdActivity.start(this@SecondActivity, 100)
            // 测试UI
//            val intent = Intent(this@SecondActivity, UIActivity::class.java)
//            startActivity(intent)
            // 测试RecyclerView
//            val intent = Intent(this@SecondActivity, RecyclerViewActivity::class.java)
//            startActivity(intent)
            // 测试 Fragment
//            val intent = Intent(this@SecondActivity, FragmentMainActivity::class.java)
//            startActivity(intent)
            // 测试 本地广播
//            val intent = Intent(this@SecondActivity, LoginActivity::class.java)
//            startActivity(intent)

            // 测试 文件存储
//            val intent = Intent(this@SecondActivity, FileActivity::class.java)
//            startActivity(intent)
            // 测试 SharedPreferences存储
            val intent = Intent(this@SecondActivity, SharedPreferencesActivity::class.java)
            startActivity(intent)
            // 测试 SQlite存储
            // 测试 ORM框架greenDao存储
        }
//        jumpToMain.setOnClickListener(View.OnClickListener {
//            it.id
//        })
        // 测试广播(1.1) ——动态注册 （缺点：必须要程序启动才能接收广播）
        mReceiver = MyBReceiver()
        // 配置要拦截的action
        val intentFilter = IntentFilter()
        intentFilter.addAction("android.media.VOLUME_CHANGED_ACTION")
        // 动态注册广播
        registerReceiver(mReceiver, intentFilter)
    }

    internal lateinit var mReceiver: MyBReceiver

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        // when 代替了 switch
        when (requestCode) {
            1 -> if (resultCode == Activity.RESULT_OK) {
                val str = data!!.getStringExtra("result")
                LoggerUtil.e(str)
            }
            // 这里的else 不是 上面 if 的，而是对应的是 1->
            else  -> {

            }
        }
    }

    override fun onStart() {
        super.onStart()
        LogUtil.logE(TAG, "onStart")
        // 每次打开都会进入。页面已创建，但未添加到前台
    }

    override fun onResume() {
        super.onResume()
        LogUtil.logE(TAG, "onResume")
        // 页面添加到前台，执行在onStart后面
    }

    override fun onPause() {
        super.onPause()
        LogUtil.logE(TAG, "onPause")
        // activity 停止， 离开当前页面，页面还在前台
    }

    override fun onStop() {
        super.onStop()
        LogUtil.logE(TAG, "onStop")
        // 页面不在前台，执行在onPause后面
    }

    override fun onRestart() {
        super.onRestart()
        LogUtil.logE(TAG, "onRestart")
        // activity重新启动，执行后，执行onStart
    }

    override fun onDestroy() {
        super.onDestroy()
        LogUtil.logE(TAG, "onDestroy")
        // activity被销毁

        // 测试广播(1.1) ——动态注册
        unregisterReceiver(mReceiver) // 取消广播， 必须要有
    }

    override fun onNewIntent(intent: Intent?) {
        super.onNewIntent(intent)
        LogUtil.logE(TAG, "onNewIntent: getData==" + intent?.getStringExtra("data"))
    }

}